home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / C / ASAP / nvdata_.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-09-09  |  2.9 KB  |  69 lines

  1. /*****************************************************************************
  2.  *                                                                           *
  3.  * ASAP - Amiga Software Authoring Platform                                  *
  4.  *                                                                           *
  5.  * Written by Laurie Perrin                                                  *
  6.  *                                                                           *
  7.  * ANVData wrapper class                                                     *
  8.  *                                                                           *
  9.  *****************************************************************************/
  10.  
  11. #ifndef ASAP_ANVData_H
  12. #define ASAP_ANVData_H
  13.  
  14. #include <New.h>
  15.  
  16. extern "C"
  17. {
  18.  #include <Proto/Nonvolatile.h>
  19. }
  20.  
  21. class ANVData
  22. {
  23.  public:
  24.  inline static BOOL DeleteNV(STRPTR appName, STRPTR itemName, long killRequesters = 1);
  25.  inline void FreeNVData();
  26.  inline void operator delete(void *);
  27.  inline static ANVData * GetCopyNV(STRPTR appName, STRPTR itemName, long killRequesters = 1);
  28.  inline void * operator new(size_t, STRPTR appName, STRPTR itemName, long killRequesters = 1);
  29.  inline static BOOL SetNVProtection(STRPTR appName, STRPTR itemName, long mask = NVEF_DELETE, long killRequesters = 1);
  30.  inline UWORD StoreNV(STRPTR appName, STRPTR itemName, unsigned long length, long killRequesters = 1);
  31. };
  32. //----------------------------------------------------------------------------
  33. BOOL ANVData::DeleteNV (STRPTR appName, STRPTR itemName, long killRequesters)
  34. {
  35.  return ::DeleteNV(appName, itemName, killRequesters);
  36. }
  37. //----------------------------------------------------------------------------
  38. void ANVData::FreeNVData ()
  39. {
  40.  ::FreeNVData((APTR) this);
  41. }
  42. //----------------------------------------------------------------------------
  43. void ANVData::operator delete (void *data)
  44. {
  45.  ((ANVData *) data)->FreeNVData();
  46. }
  47. //----------------------------------------------------------------------------
  48. ANVData * ANVData::GetCopyNV (STRPTR appName, STRPTR itemName, long killRequesters)
  49. {
  50.  return (ANVData *) ::GetCopyNV(appName, itemName, killRequesters);
  51. }
  52. //----------------------------------------------------------------------------
  53. void * ANVData::operator new (size_t, STRPTR appName, STRPTR itemName, long killRequesters)
  54. {
  55.  return ANVData::GetCopyNV(appName, itemName, killRequesters);
  56. }
  57. //----------------------------------------------------------------------------
  58. BOOL ANVData::SetNVProtection (STRPTR appName, STRPTR itemName, long mask, long killRequesters)
  59. {
  60.  return ::SetNVProtection(appName, itemName, mask, killRequesters);
  61. }
  62. //----------------------------------------------------------------------------
  63. UWORD ANVData::StoreNV (STRPTR appName, STRPTR itemName, unsigned long length, long killRequesters)
  64. {
  65.  return ::StoreNV(appName, itemName, (APTR) this, length, killRequesters);
  66. }
  67.  
  68. #endif
  69.